package com.ruoyi.system.domain.bo;

import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 勤务满意度统计业务对象 satisfaction
 *
 * @author ruoyi
 * @date 2025-06-16
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class SatisfactionBo extends BaseEntity {

    /**
     * 主键ID
     */
    @NotNull(message = "主键ID不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * 警员ID
     */
    @NotNull(message = "警员ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long officerId;

    /**
     * 日期
     */
    @NotNull(message = "日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date dutyDate;

    /**
     * 满意度分数
     */
    @NotNull(message = "满意度分数不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal satisfactionScore;

    /**
     * 响应时间（分钟）
     */
    @NotNull(message = "响应时间（分钟）不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long responseTime;

    /**
     * 群众满意度
     */
    @NotNull(message = "群众满意度不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal crowdSatisfaction;

    /**
     * 事件处置率
     */
    @NotNull(message = "事件处置率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal eventHandleRate;

    /**
     * 巡逻覆盖率
     */
    @NotNull(message = "巡逻覆盖率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal patrolCoverage;

    /**
     * 设备完好率
     */
    @NotNull(message = "设备完好率不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal equipmentStatusRate;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String remarks;


}
